Relay apparatus, client apparatus, and computer-readable medium

ABSTRACT

A relay apparatus includes a storage, request data reception and transmission units, a mode data reception unit, a specified condition conversion unit, a content identifier reception unit, a generation unit, and a display data transmission unit. The storage stores a service identifier, access destination information, and a conversion routine for the format of a specified condition specifying content, for each of storage services. The request data reception unit receives a service identifier and a specified condition from a client apparatus. The mode data reception unit receives mode data specifying a client apparatus display format. The specified condition conversion unit converts the specified condition into a server format, which is transmitted by the request data transmission unit using access destination information. The content identifier reception unit receives content identifiers from the server, for which the generation unit generates display data. The display data transmission unit transmits it to the client apparatus.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 16/745,452, filed Jan. 17, 2020, which is acontinuation of U.S. patent application Ser. No. 15/936,003, filed Mar.26, 2018, which is a continuation application of U.S. patent applicationSer. No. 14/053,916, filed Oct. 15, 2013, which is based on and claimspriority under 35 USC 119 from Japanese Patent Application No.2013-043210 filed Mar. 5, 2013. The disclosures of each reference arehereby incorporated by reference in their entireties.

BACKGROUND (i) Technical Field

The present invention relates to a relay apparatus, a client apparatus,and a computer-readable medium.

(ii) Related Art

A service called a cloud service or cloud computing is known. In such aservice, for example, servers on a network, instead of clientapparatuses, perform various types of information processing, such asdata storage and data format conversion. In the field of such a service,a technique has been proposed in which communication is relayed betweena server and client apparatuses.

SUMMARY

According to an aspect of the present invention, there is provided arelay apparatus including a storage, a request data reception unit, amode data reception unit, a specified condition conversion unit, arequest data transmission unit, a content identifier reception unit, ageneration unit, and a display data transmission unit. The storagestores a service identifier, access destination information, and aconversion routine which are associated with each other, for each ofmultiple storage services. The service identifier is an identifier foridentifying the storage service. The access destination informationindicates information used to access a server which provides the storageservice. The conversion routine indicates a rule for converting a formatof a specified condition indicating a condition used to specify one ormore pieces of content between a format used in the server providing thestorage service and a format used in a client apparatus. The requestdata reception unit receives a service identifier and a specifiedcondition as request data from the client apparatus. The mode datareception unit receives mode data for specifying a display format usedwhen the client apparatus displays a search result according to thespecified condition received by the request data reception unit. Thespecified condition conversion unit converts the specified conditionreceived by the request data reception unit into a format used in theserver, in accordance with a conversion routine stored in the storage insuch a manner that the conversion routine is associated with the serviceidentifier received by the request data reception unit. The request datatransmission unit transmits the specified condition obtained through theconversion performed by the specified condition conversion unit, asrequest data in accordance with access destination information stored inthe storage in such a manner that the access destination information isassociated with the service identifier received by the request datareception unit. The content identifier reception unit receives a contentidentifier transmitted from the server as a response to the request datatransmitted by the request data transmission unit. The generation unitgenerates display data indicating an instruction to display the contentidentifier received by the content identifier reception unit in thedisplay format specified by the mode data received by the mode datareception unit. The display data transmission unit transmits the displaydata generated by the generation unit, as a response to the request datareceived by the request data reception unit to the client apparatus.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments of the present invention will be described indetail based on the following figures, wherein:

FIG. 1 is a block diagram illustrating the overall configuration of acommunication system;

FIG. 2A is a diagram illustrating the hardware configuration of a relayapparatus;

FIG. 2B is a diagram illustrating an exemplary management table;

FIG. 3 is a diagram illustrating the hardware configuration of a storageservice providing apparatus;

FIG. 4 is a diagram illustrating the hardware configuration of a clientapparatus;

FIG. 5 is a diagram illustrating the hardware configuration of an imageoutput device;

FIG. 6 is a diagram illustrating a functional configuration of the relayapparatus and the client apparatus;

FIG. 7 is a diagram illustrating an exemplary screen for inputting asearch condition;

FIG. 8 is a diagram illustrating an exemplary screen for setting adisplay mode;

FIG. 9 is a diagram for describing an operation of searching forcontent;

FIG. 10 is a diagram illustrating an exemplary screen showing searchresults;

FIG. 11 is a diagram illustrating an exemplary screen showing searchresults;

FIG. 12 is a diagram illustrating an exemplary screen showing searchresults;

FIG. 13 is a diagram illustrating an exemplary screen showing searchresults;

FIG. 14 is a diagram illustrating an exemplary screen showing searchresults;

FIG. 15 is a diagram illustrating an exemplary screen showing searchresults;

FIG. 16 is a diagram illustrating an exemplary screen for setting adisplay mode;

FIG. 17 is a diagram illustrating an exemplary screen for setting adisplay mode;

FIG. 18 is a diagram illustrating an exemplary screen for setting adisplay mode;

FIG. 19 is a diagram illustrating an exemplary screen for setting adisplay mode;

FIG. 20 is a diagram for describing an operation of outputting content;and

FIG. 21 is a diagram for describing an operation of outputting content.

DETAILED DESCRIPTION 1. Exemplary Embodiment 1-1. Overall Configuration

FIG. 1 is a block diagram illustrating the overall configuration of acommunication system 1 according to an exemplary embodiment of thepresent invention. The communication system 1 includes a relay apparatus10, storage service providing apparatuses 20 a, 20 b, and 20 c, a clientapparatus 30, an image output device 40, a wide area network (WAN) 50,and a local area network (LAN) 60. The storage service providingapparatuses 20 a, 20 b, and 20 c are apparatuses, each of which providesa so-called storage service. The WAN 50 is a communication line in awide area which connects the relay apparatus 10, the storage serviceproviding apparatuses 20 a, 20 b, and 20 c, and the LAN 60 to eachother, and which transfers information transmitted and received betweenthese. The WAN 50 is, for example, the Internet.

The LAN 60 is a communication line which is connected to the clientapparatus 30 and the image output device 40, and which transfersinformation transmitted and received between these and the WAN 50. Agateway server (not illustrated) connected to the WAN 50 is provided forthe LAN 60. The gateway server permits communication from an apparatusconnected to the LAN 60 (hereinafter, referred to as a LAN 60 sideapparatus) to an apparatus connected to the WAN 50 (hereinafter,referred to as a WAN 50 side apparatus). In contrast, for communicationfrom a WAN 50 side apparatus to a LAN 60 side apparatus, the gatewayserver permits only responses to communication requested by the LAN 60side apparatus, and interrupts communication other than the responses.That is, the gateway server functions as a so-called firewall.

The client apparatus 30 is connected to the LAN 60, and is an apparatusfor receiving a user operation and specifying output of contentindicated by the operation to the relay apparatus 10. The clientapparatus 30 is, for example, a smartphone or a tablet personalcomputer.

The relay apparatus 10 is connected to the WAN 50, and is an apparatusfor providing requested content to the image output device 40. The relayapparatus 10 receives the specification from the client apparatus 30,and obtains the content indicated by the specification from either ofthe storage service providing apparatuses 20 a, 20 b, and 20 c. Therelay apparatus 10 stores the obtained content in itself, and notifiesthe client apparatus 30 of the uniform resource identifier (URI) whichindicates the storage location of the content.

The storage service providing apparatuses 20 a, 20 b, and 20 c areservers connected to the WAN 50, and store content. The storage serviceproviding apparatuses 20 a, 20 b, and 20 c receive a request to obtaincontent, from the relay apparatus 10, and provide the requested contentto the relay apparatus 10. The storage service providing apparatuses 20a, 20 b, and 20 c receive/transmit data from/to another apparatus indifferent formats. Although the formats in which the storage serviceproviding apparatuses 20 a, 20 b, and 20 c receive/transmit data from/toanother apparatus are different from each other, each of the storageservice providing apparatuses 20 a, 20 b, and 20 c has a similarhardware configuration, and performs a similar operation. Hereinafter,except in the case where the storage service providing apparatuses 20 a,20 b, and 20 c are to be separately described, each of the storageservice providing apparatuses 20 a, 20 b, and 20 c is called a storageservice providing apparatus 20.

The image output device 40 obtains the URI transmitted from the relayapparatus 10 to the client apparatus 30, from the client apparatus 30.The image output device 40 uses the obtained URI to request the contentstored in the storage area indicated by the URI, from the relayapparatus 10. Receiving the request, the relay apparatus 10 provides thecontent to the image output device 40. The image output device 40outputs the content provided from the relay apparatus 10. The imageoutput device 40 is, for example, an electrophotographic image formingapparatus, and outputs the content by forming an image indicated by thecontent on a medium such as paper.

1-2. Configuration of Relay Apparatus

FIG. 2A is a diagram illustrating the configuration of the relayapparatus 10. In FIG. 2A, a controller 11 includes an arithmetic andlogic unit such as a central processing unit (CPU) and main storages,such as a read only memory (ROM) and a random access memory (RAM). Thearithmetic and logic unit uses the RAM as a work area and executesprograms stored in the ROM or a storage unit 13, thereby controllingoperations of units of the relay apparatus 10. A communication unit 12is an interface for communicating via the WAN 50 to another apparatus.The storage unit 13 is a storage device such as a hard disk, and storesdata and programs which are used by the controller 11. The storage unit13 has a management table storage area 14. The management table storagearea 14 stores information for accessing the storage service providingapparatuses 20.

FIG. 2B is a diagram illustrating an exemplary management table. Asillustrated in FIG. 2B, items “SVC identifier”, “access destination”,“identifier conversion routine”, and “conditional expression conversionroutine” are stored in the table in such a manner as to be associatedwith each other. Among these items, a service identifier for identifyinga storage service is stored in the item “SVC identifier”. Accessdestination information indicating information for accessing a storageservice providing apparatus 20 which provides a storage service isstored in the item “access destination”. In the exemplary embodiment, aURI is stored as access destination information. An identifierconversion routine (exemplary conversion routine) indicating rules forconverting the format of a content identifier identifying content andthe format of a folder identifier (exemplary specified condition)identifying a folder between the format used in a storage serviceproviding apparatus 20 and the format used in the client apparatus 30 isstored in the item “identifier conversion routine”. In the exemplaryembodiment, it is assumed that each storage service uses a differentformat for a content identifier and a folder identifier. In the exampleillustrated in FIG. 2B, for example, a service identifier “service-A” isassociated with an identifier conversion routine “ConvertForA( )”. Aconditional expression conversion routine (exemplary conversion routine)indicating a rule for converting the format of a specified conditionindicating a condition for specifying one or more pieces of contentbetween the format used in a storage service providing apparatus 20 andthe format used in the client apparatus 30 is stored in the item“conditional expression conversion routine”.

The relay apparatus 10 and the client apparatus 30 receive/transmit datafrom/to each other in a format which is independent of data formatsdefined in the storage services. The “identifier conversion routine” isused to convert a content identifier and a folder identifier describedin a format used in data communication between the client apparatus 30and the relay apparatus 10 into identifiers in a format corresponding toeach of the storage services. The “conditional expression conversionroutine” is used to convert a conditional expression described in aformat used in data communication between the client apparatus 30 andthe relay apparatus 10 into a conditional expression in a formatcorresponding to each of the storage services.

1-3. Configuration of Storage Service Providing Apparatus

FIG. 3 is a diagram illustrating the configuration of a storage serviceproviding apparatus 20. In FIG. 3, a controller 21 includes anarithmetic and logic unit such as a CPU and main storages, such as a ROMand a RAM. The arithmetic and logic unit uses the RAM as a work area andexecutes programs stored in the ROM or a storage unit 23, therebycontrolling operations of units of the storage service providingapparatus 20. A communication unit 22 is an interface for communicatingvia the WAN 50 to another apparatus. The storage unit 23 is a storagedevice such as a hard disk, and stores data and programs which are usedby the controller 21.

The storage unit 23 includes a content database 24 which stores contentassociated with information indicating the storage location of thecontent. Responding to a request from the relay apparatus 10, thecontroller 21 reads out content from the content database 24 andprovides it. In the exemplary embodiment, “content” is used as a termrepresenting data indicating various documents, images, and the like,such as document data representing a document or image data representingan image. Other than these, for example, “content” may be a computerprogram, and a set of data is called “content”. In the exemplaryembodiment, the content database 24 includes a table in which URIs suchas “http://z**.com/C001” are described, as information indicating thestorage location of content. Each URI is associated with a storage areafor content.

1-4. Configuration of Client Apparatus

FIG. 4 is a diagram illustrating the hardware configuration of theclient apparatus 30. In FIG. 4, a controller 31 includes an arithmeticand logic unit such as a CPU and main storages, such as a ROM and a RAM.The ROM stores programs executed by the arithmetic and logic unit. Thearithmetic and logic unit uses the RAM as a work area and executesprograms stored in the ROM or a storage unit 35, thereby controllingoperations of units of the client apparatus 30. A communication unit 32is an interface for communicating via the LAN 60 to another apparatus.An operation unit 33 includes operators, such as various keys and atouch sensor, and supplies an operation signal corresponding to a useroperation to the controller 31. The controller 31 performs processingcorresponding to the operation signal. A display unit 34 includes aliquid crystal panel and a liquid-crystal driving circuit, and displaysan image under the control performed by the controller 31. The storageunit 35 is a storage device such as a hard disk, and stores data andprograms which are used by the controller 31.

1-5. Configuration of Image Output Device

FIG. 5 is a diagram illustrating the hardware configuration of the imageoutput device 40. In FIG. 5, a controller 41 includes an arithmetic andlogic unit such as a CPU and main storages, such as a ROM and a RAM. TheROM stores programs executed by the arithmetic and logic unit. Thearithmetic and logic unit uses the RAM as a work area and executesprograms stored in the ROM or a storage unit 47, thereby controllingoperations of units of the image output device 40. A communication unit42 is an interface for communicating via the LAN 60 to anotherapparatus. An operation unit 43 includes operators, such as various keysand a touch sensor, and supplies an operation signal corresponding to auser operation to the controller 41. The controller 41 performsprocessing corresponding to the operation signal. A display unit 44includes a liquid crystal panel and a liquid-crystal driving circuit,and displays an image under the control performed by the controller 41.An image forming unit 45 forms an image by using an electrophotographicsystem. An image reading unit 46 optically reads out an image on adocument. The storage unit 47 is a storage device such as a hard disk,and stores data and programs which are used by the controller 41.

1-6. Functional Configuration

FIG. 6 is a diagram illustrating a functional configuration of the relayapparatus 10 and the client apparatus 30. The relay apparatus 10 causesthe controller 11, or the controller 11 and the communication unit 12,to achieve functions of a request data reception unit 111, a mode datareception unit 112, a specified condition conversion unit 113, a requestdata transmission unit 114, a content identifier reception unit 115, ageneration unit 116, and a display data transmission unit 117. Therequest data reception unit 111 receives service identifiers and aspecified condition from the client apparatus 30 as request data. In theexemplary embodiment, a folder identifier for specifying a folder and aconditional expression for specifying a search condition are used asspecified conditions. The mode data reception unit 112 receives modedata for specifying a display format used when the client apparatus 30displays search results according to the specified condition received bythe request data reception unit 111.

The specified condition conversion unit 113 converts the specifiedcondition received by the request data reception unit 111 into theformats used in storage service providing apparatuses 20 in accordancewith conversion routines stored in the management table storage area 14in such a manner that the conversion routines are associated with theservice identifiers received by the request data reception unit 111. Therequest data transmission unit 114 transmits the specified conditionsobtained through conversion performed by the specified conditionconversion unit 113, as request data in accordance with accessdestination information stored in the management table storage area 14in such a manner that the access destination information is associatedwith the service identifiers received by the request data reception unit111.

The content identifier reception unit 115 receives content identifierstransmitted from the storage service providing apparatuses 20 asresponses to the request data which has been transmitted by the requestdata transmission unit 114. The generation unit 116 generates displaydata instructing that the content identifiers received by the contentidentifier reception unit 115 be displayed in the display formatspecified by the mode data received by the mode data reception unit 112.The display data transmission unit 117 transmits the display datagenerated by the generation unit 116 to the client apparatus 30 as aresponse to the request data received by the request data reception unit111.

The client apparatus 30 causes the controller 31, or the controller 31and the communication unit 32, to achieve functions of an acquisitionunit 131, a request data transmission unit 132, a mode data transmissionunit 133, a display data reception unit 134, and a display controller135. The acquisition unit 131 acquires service identifiers foridentifying storage services, a specified condition indicating acondition for specifying one or more pieces of content, and a displayformat of search results according to the specified condition, inaccordance with a user operation. The request data transmission unit 132transmits the service identifiers and the specified condition acquiredby the acquisition unit 131 to the relay apparatus 10 as request data.The mode data transmission unit 133 transmits the mode data acquired bythe acquisition unit 131 to the relay apparatus 10. The display datareception unit 134 receives display data which instructs that contentidentifiers for identifying content be displayed, and which istransmitted from the relay apparatus 10 as a response to the requestdata which has been transmitted by the request data transmission unit132. The display controller 135 causes the display unit 34 to displaycontent identifiers in accordance with the display data received by thedisplay data reception unit 134.

1-7. Operation 1-7-1. Operation of Searching for Content

An exemplary operation according to the exemplary embodiment will bedescribed. An operation of searching storage services specified by auser for content will be described. In the description below, thestorage service provided by the storage service providing apparatus 20 ais called “storage service A”, and the storage service provided by thestorage service providing apparatus 20 b is called “storage service B”.In the example below, an operation performed when a user U searches thestorage service A and the storage service B for content by specifying aconditional expression (Name=abc) will be described.

The user U operates the operation unit 33 to transmit an instruction tosearch for content. The controller 31 of the client apparatus 30 firstdisplays a screen for inputting a search condition on the display unit34 in accordance with information which is output from the operationunit 33.

FIG. 7 is a diagram illustrating an exemplary screen for inputting asearch condition, which is displayed on the display unit 34. In theexample in FIG. 7, text boxes for specifying a keyword and date andtime, check boxes for selecting storage services to be searched, and thelike are displayed. The user U operates the operation unit 33 totransmit an instruction to search the storage service A and the storageservice B for content whose file name is “abc”.

The controller 31 of the client apparatus 30 then displays a screen forselecting a display mode (display format of search results) on thedisplay unit 34.

FIG. 8 is a diagram illustrating an exemplary screen displayed on thedisplay unit 34. As illustrated in FIG. 8, radio buttons RB1, RB2, etc.for selecting how to display search results are displayed on the screen.In the exemplary embodiment, a screen for selecting either of displaymodes “not specified (display on content-by-content basis)”, “notspecified (display on service-by-service basis)”, “specify display order(display on service-by-service basis)”, “specify display order (displayon content-by-content basis)”, “combine above display rules”, and“display the number of hits on service-by-service basis” as a displaymode for search results is displayed.

The display modes illustrated in FIG. 8 will be described in detail inthe description “Operation of Displaying Search Results” describedbelow.

When the user U selects a display mode, the communication system 1starts a series of processes of searching content. FIG. 9 is a diagramillustrating a flow of a content search operation according to theexemplary operation. When the user U inputs a search condition and adisplay mode, the controller 31 of the client apparatus 30 transmitssearch request data and data indicating the display mode specified bythe user U (hereinafter, referred to as “mode data”) to the relayapparatus 10 in accordance with information which is output from theoperation unit 33 (in step S31). The search request data includesservice identifiers for identifying storage services and a conditionalexpression indicating a search condition. Specifically, in the exemplaryoperation, the controller 31 transmits the search request data including“id:svc:service-A”and “id:svc:service-B” as service identifiers and“Name=abc” as a conditional expression, and mode data indicating “notspecified (display on content-by-content basis)”.

Receiving the search request data and the mode data from the clientapparatus 30, the controller 11 of the relay apparatus 10 refers to thestored data in the management table storage area 14 to specifyconditional expression conversion routines corresponding to the serviceidentifiers included in the received search request data. The controller11 of the relay apparatus 10 uses the specified conditional expressionconversion routines to convert the conditional expression included inthe received search request data into conditional expressions in theformats used in the storage services (in step S32). In the exemplaryoperation, the conditional expression “Name=abc” is converted into“search/Name/abc” by using a conditional expression conversion routine“ConvertCondForA( )”, and is converted into “search?q=‘Name=abc’” byusing a conditional expression conversion routine “ConvertCondForB( )”.

The controller 11 uses access destination information corresponding tothe service identifiers included in the search request data received instep S31, to transmit search request data to the storage serviceproviding apparatuses 20 (in steps S33-A and S33-B). In the exemplaryoperation, the controller 11 transmits an HTTP GET request in which“http://www.serviceA/search/Name/abc” is specified as a URI to thestorage service providing apparatus 20 a. The controller 11 transmits anHTTP GET request in which “http://www.serviceB/search?q=‘Name=abc’” isspecified as a URI to the storage service providing apparatus 20 b.

Receiving search request data transmitted from the relay apparatus 10, astorage service providing apparatus 20 uses the conditional expressionspecified by the received search request data to search for content, andtransmits a content list obtained through searching to the relayapparatus 10 (in steps S34-A and S34-B). At that time, a storage serviceproviding apparatus 20 uses a content identifier in the formatpredetermined in the storage service for the storage service providingapparatus 20. Specifically, in the exemplary operation in FIG. 9, thestorage service providing apparatus 20 a transmits“http://www.serviceA/doc/3210” and “http://www.serviceA/doc/9876” ascontent identifiers to the relay apparatus 10. The storage serviceproviding apparatus 20 b transmits “http://www.serviceB/doc-ABC” as acontent identifier to the relay apparatus 10.

Receiving content lists from the storage service providing apparatuses20, the controller 11 of the relay apparatus 10 generates data (displaydata) indicating an instruction to display a screen as illustrated inFIG. 10 in accordance with the display mode “not specified (display oncontent-by-content basis)” specified by the mode data received in stepS31, and transmits the generated data to the client apparatus 30 (instep S35). The client apparatus 30 displays a display screen for searchresults (list of content identifiers, i.e., content names) asillustrated in FIG. 10 in accordance with the display data transmittedfrom the relay apparatus 10.

1-7-2. Operation of Displaying Search Results

As described above, in the exemplary embodiment, the client apparatus 30displays a screen (see FIG. 8) for prompting the user U to select adisplay aspect (display mode) of search results on the display unit 34.The storage service providing apparatuses 20 are different in processingspeed, communication speed, and the like, and the time period requiredfor searching depends on each of the storage service providingapparatuses 20. Therefore, search results for content are transmittedfrom the storage service providing apparatuses 20 at different timingsdepending on the storage service providing apparatuses 20. Accordingly,in the exemplary embodiment, the user U sets how to display searchresults which are transmitted at different timings.

The display modes, one of which the user U is allowed to select in thescreen for selecting a display mode illustrated in FIG. 8, will bedescribed below. The mode “not specified (display on content-by-contentbasis)” is a mode in which search results for content from the storageservice providing apparatuses 20 are displayed one by one in the orderof receipt of the search results.

As described above, FIG. 10 is a diagram illustrating an exemplarydisplay aspect of search results obtained when the mode “not specified(display on content-by-content basis)” is selected. In the example inFIG. 10, pieces of content obtained through searching are displayed in alist in the order of receipt of search results. In this example, piecesof content in a search result received at an early timing are displayedon an upper side of the list. In this case, pieces of content receivedas a search result transmitted later are sequentially added to the endof the list.

The mode “not specified (display on service-by-service basis)” is a modein which search results are displayed on astorage-service-by-storage-service basis in the order of receipt of thesearch results. FIG. 11 is a diagram illustrating an exemplary displayscreen showing search results in this mode. In the example illustratedin FIG. 11, search results are displayed on astorage-service-by-storage-service basis in the order of receipt of thesearch results. In this example, a storage service from which a searchresult is received at an early timing is displayed on an upper side ofthe list. In this case, for a service from which a search result isreceived later, the search result from the service is sequentially addedto the end of the list and displayed.

The mode “specify display order (display on service-by-service basis)”indicates a mode in which a user U specifies a display order on aservice-by-service basis. FIG. 12 is a diagram illustrating an exemplarydisplay screen showing search results in this mode. In the exampleillustrated in FIG. 12, search results are displayed on astorage-service-by-storage-service basis in the order specified by theuser U.

The mode “specify display order (display on content-by-content basis)”indicates a mode in which a user U specifies a display order on acontent-by-content basis. FIG. 13 is a diagram illustrating an exemplarydisplay screen showing search results in this mode. In the exampleillustrated in FIG. 13, pieces of content obtained through searching aredisplayed in the order specified by the user U (for example, inascending order of content name, or in ascending order of save date andtime).

The mode “combine above display rules” indicates a mode in which a userU specifies a display order for some pieces of content or some storageservices. FIG. 14 is a diagram illustrating an exemplary display screenshowing search results in this mode. FIG. 14 illustrates an example inwhich a user U specifies a display order for some storage services andalso specifies “creation date of content (ascending order)” used as adisplay order of the content obtained through search of the services,and in which search results are displayed on astorage-service-by-storage-service basis in the specified order bysorting the pieces of content obtained through the search of the storageservices, in ascending order of creation date. In this case, storageservices for which a display order is not specified are sequentiallyadded to the end of the list in the order of receipt of the searchresults and displayed.

The mode “display the number of hits on service-by-service basis”indicates a mode in which the number of pieces of content obtainedthrough searching is displayed on a storage-service-by-storage-servicebasis. FIG. 15 is a diagram illustrating an exemplary display screenshowing search results in this mode. In the example illustrated in FIG.15, the number of pieces of content obtained through searching isdisplayed for each of the storage services.

In the selection screen illustrated in FIG. 8, a user U selects eitherof the modes. When either of the modes “not specified (display oncontent-by-content basis)”, “not specified (display onservice-by-service basis)”, and “display the number of hits onservice-by-service basis” is selected, the controller 31 generates modedata indicating the selected mode. When the mode “specify display order(display on service-by-service basis)” is selected, the controller 31displays a screen for specifying a display order of the storage servicesas illustrated in FIG. 16. In the example illustrated in FIG. 16,buttons 281 and 282 for specifying a display order of the storageservices are displayed on a screen 280. The user U presses the buttons281 and 282, and specifies a display order of the storage services. Whenthe user U specifies a display order, the controller 31 generates modedata indicating the display order specified by the user U.

When the mode “specify display order (display on content-by-contentbasis)” is selected in the screen illustrated in FIG. 8, the controller31 displays a screen for specifying a display order of content asillustrated in FIG. 17. In a screen 290 illustrated in FIG. 17, choices“content name (ascending order)”, “save date and time of content”, andthe like are displayed as display orders for content, and the user Uuses the operation unit 33 to select either of the displayed displayorders. The controller 31 determines a display aspect of search resultsin accordance with information which is output from the operation unit33, and generates mode data indicating the determined display aspect.

When the mode “combine above display rules” is selected in the screenillustrated in FIG. 8, the controller 31 displays a screen for selectinga combination of rules as illustrated in FIG. 18. In the screenillustrated in FIG. 18, the user U uses the operation unit 33 to selecta combination of rules. The controller 31 determines a combination ofrules in accordance with information which is output from the operationunit 33, and displays a screen for specifying a display order of contentor services as illustrated in FIG. 19, on the display unit 34. In theexample illustrated in FIG. 19, a screen 310 for specifying a displayorder for some services is displayed. The user U uses buttons 312 and313 to specify a display order of storage services. When the user Uspecifies a display order, the controller 31 generates mode dataindicating the display order specified by the user U. As describedabove, the mode data generated by the controller 31 in accordance withthe setting of a display mode performed by the user U is transmitted tothe relay apparatus 10 in step S31 in FIG. 9.

Receiving the mode data indicating a display mode from the clientapparatus 30, the relay apparatus 10 stores it in a predeterminedstorage area of the relay apparatus 10, and generates data that is to betransmitted to the client apparatus 30, in accordance with the modedata. Receiving search results from the storage service providingapparatuses 20 (in steps S34-A and S34-B in FIG. 9), the controller 11of relay apparatus 10 generates data indicating a screen on which thesearch results are displayed, in accordance with the mode data stored inthe relay apparatus 10, and transmits the generated data to the clientapparatus 30 (in step S35 in FIG. 9). For example, when the mode “notspecified (display on content-by-content basis)” is selected by the userU, the controller 11 of the relay apparatus 10 generates data indicatingthe screen as illustrated in FIG. 10, and transmits the generated datato the client apparatus 30. The client apparatus 30 displays the screenshowing the search results on the display unit 34 in accordance with thedata received from the relay apparatus 10.

When the user U selects the mode “display the number of hits onservice-by-service basis”, the controller 11 generates data indicating ascreen as illustrated in FIG. 15, and transmits the generated data tothe client apparatus 30. The client apparatus 30 displays a screen asillustrated in FIG. 15 on the display unit 34 in accordance with thedata received from the relay apparatus 10. In a screen 270 illustratedin FIG. 15, when the user U selects either of buttons 271, 272, 273, and274 for displaying a content list in the search result from a storageservice, the controller 31 displays a content list indicating the searchresult of a storage service corresponding to the selected button on thedisplay unit 34 in accordance with the data indicating the searchresults received from the relay apparatus 10.

As described above, the search results for content are transmitted fromthe storage service providing apparatuses 20 at different timingsdepending on the storage service providing apparatuses 20, and a timelag may occur. Therefore, in the exemplary embodiment, at predeterminedtime intervals, the relay apparatus 10 generates data in which searchresults which have been received from storage service providingapparatuses 20 at that time are reflected, and transmits the data to theclient apparatus 30 every time the data is generated. Every time theclient apparatus 30 receives data from the relay apparatus 10, theclient apparatus 30 updates the screen displayed on the display unit 34.Therefore, the screen displayed on the display unit 34 is continuouslyupdated at predetermined time intervals.

1-7-3. Operation of Outputting Content

An operation of outputting content will be described with reference toFIG. 20. The user U uses the operation unit 33 to select a piece ofcontent from the list displayed on the display unit 34. The clientapparatus 30 transmits an output instruction to output the selectedcontent, to the relay apparatus 10 in accordance with information whichis output from the operation unit 33 (in step S11). The outputinstruction includes either of the content identifiers displayed in thecontent list.

Receiving the output instruction from the client apparatus 30, thecontroller 11 of the relay apparatus 10 obtains content corresponding tothe content identifier included in the received output instruction fromthe storage service providing apparatus 20, stores it in itself, andtransmits a URI (acquisition destination information) indicating thestorage location of the content to the client apparatus 30 (in stepS12). The controller 11 performs a preparative process for obtaining thecontent which has been obtained from the storage service providingapparatus 20 (in step S13). Specifically, in the exemplary operation,when the data format of the content specified by the user U is not adata format in which the image output device 40 is capable of displayingcontent, the controller 11 converts the content into the data format inwhich the image output device 40 is capable of displaying content. Inthis case, the acquisition destination information transmitted in stepS12 indicates a storage area for the content obtained throughconversion.

Receiving the acquisition destination information of the content fromthe relay apparatus 10, the client apparatus 30 transmits the receivedacquisition destination information to the image output device 40,thereby notifying the image output device 40 of the acquisitiondestination information of the content (in step S14). Receiving theacquisition destination information from the client apparatus 30, theimage output device 40 accesses the storage location indicated by thereceived acquisition destination information (in step S15). The relayapparatus 10 transmits the content stored in the accessed storagelocation (in step S16). The image output device 40 outputs an imagerepresented by the content transmitted from the relay apparatus 10 byusing the image forming unit 45 (in step S17).

Modified Embodiments

The above-described exemplary embodiment is an example of the presentinvention, and may be modified as follows. Modified embodimentsdescribed below may be combined with each other.

(1) In the above-described exemplary embodiment, the operation in whicha user uses the client apparatus 30 to search storage services specifiedby the user via the relay apparatus 10 for content is described. Thepresent invention is not limited to this, and the controller 41, theoperation unit 43, and the display unit 44 of the image output device 40may perform the processes performed by the controller 31, the operationunit 33, and the display unit 34 of the client apparatus 30.

An operation in which a user uses the image output device 40 to searchstorage services for content is similar to the operation using theclient apparatus 30 illustrated in FIG. 9. An operation of outputtingcontent will be described with reference to FIG. 21. A user U uses theoperation unit 43 of the image output device 40 to select a piece ofcontent from a list displayed on the display unit 44. The image outputdevice 40 transmits a request to output the selected piece of content,to the relay apparatus 10 in accordance with information which is outputfrom the operation unit 43 (in step S21). The output request includeseither of the content identifiers displayed in the content list.

Receiving the output request from the image output device 40, thecontroller 11 of the relay apparatus 10 generates a URI (acquisitiondestination information) indicating a content storage locationcorresponding to the received output request, and transmits it to theimage output device 40 (in step S22). The controller 11 requests astorage service providing apparatus 20 to obtain content correspondingto the content identifier included in the received output request, andobtains content corresponding to the content identifier from the storageservice providing apparatus 20 (in step S23).

Receiving acquisition destination information of the content from therelay apparatus 10, the image output device 40 periodically accesses theURI indicated by the received acquisition destination information, andchecks if print data has been generated (in step S24). The controller 11of the relay apparatus 10 converts content obtained from the storageservice providing apparatus 20 into print data in a format in which theimage output device 40 is capable of outputting data, and stores theprint data generated through conversion in the storage locationindicated by the URI of the acquisition destination information. Theimage output device 40 periodically accesses the storage locationindicated by the URI of the received acquisition destinationinformation. When print data is stored in the storage location indicatedby the URI, the image output device 40 obtains the print data from thestorage location (in step S25). The image output device 40 outputs imagedata representing the content on the basis of the print data obtainedfrom the relay apparatus 10, by using the image forming unit 45 (in stepS26).

(2) In the above-described exemplary embodiment, every time a usersearches for content, the user sets a display mode for search results.However, the timing at which a display mode is set is not limited tothat in the above-described exemplary embodiment. For example, aconfiguration may be employed in which mode data indicating a displaymode which is set by a user is stored in a predetermined storage area inthe storage unit 35 of the client apparatus 30, and the controller 31may refer to the mode data stored in the storage area to specify thedisplay mode. In this case, a user simply sets a display mode once, andit is not necessary to set a mode every time searching is to beperformed. In this case, the user may change the display mode at adesired timing. When the user uses the operation unit 33 to change thedisplay mode, the controller 31 changes the mode data in accordance withinformation which is output from the operation unit 33.

As another example, a mode may be set at a timing at which the clientapparatus is turned on. In addition, a default of the display mode maybe predetermined. When a user does not select a display mode, thecontroller 31 may refer to the predetermined default and determine thedisplay mode.

As another example, the relay apparatus 10 may store mode datatransmitted by the client apparatus 30 to the relay apparatus 10. Whendisplay data indicating a screen displaying search results according tosearch request data transmitted from the client apparatus 30 after thetransmission of mode data is to be generated, the relay apparatus 10 maygenerate display data in accordance with the mode data stored inadvance. In this case also, it is not necessary for a user to set themode every time searching is to be performed.

(3) In the above-described exemplary embodiment, the configuration isemployed in which a screen displaying search results is updated atpredetermined time intervals. However, the display aspect of searchresults is not limited to this, and the relay apparatus 10 may waituntil all search results are received from the storage service providingapparatuses 20, and may transmit the search results to the clientapparatus 30 at a time.

(4) In the above-described exemplary embodiment, the mode in which thedisplay order is specified on a service-by-service basis, the mode inwhich the display order is specified on a content-by-content basis, andthe like are taken as exemplary display modes for search results. Thedisplay modes are not limited to those in the above-described exemplaryembodiment, and modes indicating other display aspects may be employed.

(5) In the above-described exemplary embodiment, the controller 11 ofthe relay apparatus 10 generates data (display data) indicating a screendisplaying search results from the storage services, and transmits it tothe client apparatus 30. The present invention is not limited to this,and the controller 31 of the client apparatus 30 may generate dataindicating a screen displaying search results. In this case, thecontroller 11 of the relay apparatus 10 (exemplary content identifierconversion unit and content identifier transmission unit) convertscontent identifiers received from storage service providing apparatuses20, in accordance with identifier conversion routines corresponding tothe storage service providing apparatuses 20 which are read out from themanagement table (see FIG. 2B), and transmits a list of the contentidentifiers obtained through the conversion to the client apparatus 30.Then, the client apparatus 30 may display the content identifiersindicating the search results received from the relay apparatus 10, inaccordance with the display mode which has been set by a user.

(6) In the above-described exemplary embodiment, a timeout may be setfor the process of searching a storage service providing apparatus 20.For example, a user may set a timeout period by using the operation unit33. When the time period which is set by the user has elapsed, the relayapparatus 10 may transmit data indicating search results which have beenreceived at that time point, to the client apparatus 30. In the casewhere the relay apparatus 10 transmits search results one by one whichare received from the storage service providing apparatuses 20, to theclient apparatus 30, after the time period which is set by the user haselapsed, it is possible for the relay apparatus 10 not to receive searchresults from the storage service providing apparatuses 20, or not totransmit received search results to the client apparatus 30.

(7) The configuration of the communication system 1 is not limited tothe configuration described in the above-described exemplary embodiment.For example, the number of units included in the communication system 1may be different from the number of units in the exemplary embodiment.For example, in the above-described exemplary embodiment, the example isdescribed in which the communication system 1 is provided with one imageoutput device 40. The number of image output devices 40 is not limitedto one, and may be more than one. In addition, in the above-describedexemplary embodiment, one storage service providing apparatus providesone storage service. The present invention is not limited to this, andmultiple servers may provide one storage service.

In the above-described exemplary embodiment, the case where threestorage services are provided is described. However, the number ofstorage services are not limited to three, and may be more than or lessthan three.

In the above-described exemplary embodiment, the client apparatus 30 andthe image output device 40 are separately provided. Alternatively, theseunits may be integrated into one unit.

(8) In the above-described exemplary embodiment, the configuration isemployed in which a service identifier for identifying a storage serviceand access destination information indicating information used to accessa storage service providing apparatus 20 are separately used. Thepresent invention is not limited to this, and a service identifier andaccess destination information may be unified into one piece of data.For example, a configuration may be employed in which a URI used toaccess a storage service providing apparatus 20 is used to identify astorage service.

(9) The image output device 40 described in the above-describedexemplary embodiment is an exemplary apparatus to which the relayapparatus 10 provides a service. This apparatus may be anotherapparatus, such as a personal computer (PC), a tablet PC, or a cellularphone.

(10) A program executed in the relay apparatus 10, the storage serviceproviding apparatuses 20, the client apparatus 30, or the image outputdevice 40 may be downloaded via a communication line such as theInternet. Alternatively, the program may be provided by recording theprogram in a computer-readable recording medium, such as a magneticrecording medium (for example, a magnetic tape or a magnetic disk), anoptical recording medium (for example, an optical disk), amagneto-optical recording medium, or a semiconductor memory.

The foregoing description of the exemplary embodiments of the presentinvention has been provided for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise forms disclosed. Obviously, many modificationsand variations will be apparent to practitioners skilled in the art. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, therebyenabling others skilled in the art to understand the invention forvarious embodiments and with the various modifications as are suited tothe particular use contemplated. It is intended that the scope of theinvention be defined by the following claims and their equivalents.

What is claimed is:
 1. A relay apparatus comprising: a processorconnected to a memory and configured to: manage information on aplurality of storage services; receive, from a client apparatus, asearch query and a specification of which of the plurality of storageservices to search; convert the search query into a format for each ofthe specified storage services; transmit each of the converted searchquery to each of the specified storage services; receive search resultsfrom each of the specified storage services; generate a search result inwhich the search results from each of the specified storage services arelisted on one screen; and output the generated search result to theclient apparatus in accordance with a display mode set by a user, thedisplay mode selected from options including a content-by-content basisand a service-by-service basis.
 2. The relay apparatus according toclaim 1, wherein the processor is further configured to: receive atimeout period from the client apparatus; and generate the search resultin which the search results received from each of the specified storageservices, which has been received at a time when the timeout period haselapsed, are listed on the one screen.